package com.Dec_Three;

/**
 * 53. 最大子数组和
 * 给你一个整数数组 nums ，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
 *
 * 子数组 是数组中的一个连续部分。
 *
 *https://leetcode.cn/problems/maximum-subarray/
 *
 * 2022/11/03 12:53
 */

public class Solution53 {

    public int maxSubArray(int[] nums) {
        //int res=1;
        if (nums.length<=1) return nums[0];
        int count=0,sum=Integer.MIN_VALUE;
        for (int i = 0; i < nums.length; i++) {
            count+=nums[i];
            if (count>sum)
            {
                sum=count;
            }
            if (count<=0) count=0;
        }
        return sum;
    }

    public static void main(String[] args) {
        Solution53 solution53=new Solution53();
        System.out.println(solution53.maxSubArray(new int[]{5,4,-1,7,8}));
    }

}
